<?php
require_once 'BaseController.php';

/**
 * パスワード忘れ画面コントローラクラス<br />
 *
 * @package apamanshop
 * @author K.Ikenaga
 * @copyright　
 */
class Mypage_PasswordController extends Mypage_BaseController
{
	/**
	 * インデックスアクション
	 *
	 * @access public
	 * @return void
	 */
	public function indexAction()
	{
		//表示テンプレートパス設定
		$this->_display_path = APPLICATION_PATH . '/modules/mypage/views/scripts/common2.tpl';

		//=====表示用共通パラメータ設定=====
		$this->setCommonParams();

		//=====ブロック設定=====
		$this->setBlock($this->_password_helper,$this->_js_password_helper);

		//=====表示=====
		$this->display($this->_display_path);
	}

	/**
	 * 問い合わせアクション
	 *
	 * @access public
	 * @return void
	 */
	public function inquireAction()
	{
		//表示テンプレートパス設定
		$this->_display_path = APPLICATION_PATH . '/modules/mypage/views/scripts/common2.tpl';

		$password = null;
		$nickName = null;

		//=====リクエストパラメータ取得=====
		//ID(e-mail)
		$id = (array_key_exists('eID', $this->_params)) ? $this->_params['eID'] : null;

		//===入力値チェック===
		//ID必須
		if (($result == -1) && (Apm_Otheritems::IsNullOrEmpty($id)))
		{
			$result = 1;
		}
		//IDセキュリティチェック
		if (($result == -1) && (!Apm_Otheritems::IsValidSecureValue($id)))
		{
			$result = 2;
		}
		require_once 'Zend/Http/Client.php';

		$cli = new Zend_Http_Client($this->_sslurl.'mypage/password/apipassword',
		array(
			 'maxredirects' => 1
		,'timeout' => 60
		)
		);
		$cli->setParameterPOST(
		array(
			 'mode' => 'json'
			 ,'isMobile' => '1'
			 ,'eID' => $this->_params['eID']
			 )
		);
		 $response = $cli->request(Zend_Http_Client::POST);

		 $resArray  = json_decode($response->getBody(), true);
		 $result = $resArray["api_result"]["result"];

		 //==========画面描画関連処理==========
		 // OKの場合
		 if ($result == 0)
		 {
		 	$request['message'] = "パスワードを".$this->_params['eID'] ."へ送信しました";
		 	Apm_Util::redirect('/mypage/login', $request);
		 	return;
		 }

		 $this->_data['result'] = $result;
		 $this->_data['message'] = "メールアドレスが登録されていません。";
		 //=====表示用共通パラメータ設定=====
		 $this->setCommonParams();

		 //=====ブロック設定=====
		 $this->setBlock($this->_password_helper,$this->_js_password_helper);

		 //=====表示=====
		 $this->display($this->_display_path);

	}

	/**
	 * パスワード問合せAPI
	 *
	 */
	public function apipasswordAction()
	{
		//=====モデルインスタンス生成=====
		$this->_model = new Mypage_Model_Password();

		//=====リクエストパラメータ取得=====
		//ID(e-mail)
		$id = (array_key_exists('eID', $this->_params)) ? $this->_params['eID'] : null;
		//0:成功 1:不正
		$result = 1;

		//===アカウント情報取得===
		$account = $this->_model->getAccount($id);

		if (count($account) == 0)
		{
			//===IDが存在しない場合===
			$result = 2;
		}
		else
		{
			//===IDが存在した場合===
			$password = $account[0]['M92_PASSWORD'];
			$nickName = $account[0]['M92_HANDLE_NAME'];
			//===メール送信===
			$this->sendMail($id, $password, $nickName);

			$result = 0;
		}
		// 返却用データ作成
		$resResult = array('api_result' => array('result' => $result));

		$this->_api_data = $resResult;
		$this->display();
	}

	/**
	 * 問い合わせ画面の共通パラメータ設定
	 *
	 */
	private function setCommonParams()
	{
		//ID(e-mail)
		$id = (array_key_exists('eID', $this->_params)) ? $this->_params['eID'] : null;

		//TODO:formParam、CHeyaCD、SrhKbnStockはいらないと思う。。。
		//検索条件からのパラメータ引きずり
		$formParam = (array_key_exists('formParam', $this->_params)) ? $this->_params['formParam'] : null;
		//Cookie登録上限部屋CD
		$heyaCd = (array_key_exists('CHeyaCD', $this->_params)) ? $this->_params['CHeyaCD'] : null;
		$searchKbnStock = (array_key_exists('SrhKbnStock', $this->_params)) ? $this->_params['SrhKbnStock'] : null;

		//=====タイトル=====
		$this->setTitle('賃貸情報アパマンショップ［マイページ｜パスワードお問い合わせ］');

		//=====ヘッダタイトル=====
		$this->setHeaderTitle('賃貸住宅・賃貸マンション・賃貸アパートの検索ならアパマンショップ。全国の賃貸住宅、賃貸不動産情報が満載です。');

		//=====タイトルバー設定=====
		if (Apm_Otheritems::IsNullOrEmpty($formParam) == false)
		{
			$this->setContentsTitle('地域から探す　検索条件を登録', 'class=\'orange\'');
		}
		elseif (Apm_Otheritems::IsNullOrEmpty($heyaCd) == false)
		{
			$this->setContentsTitle('物件詳細　お気に入りに登録', 'class=\'orange\'');
		}
		else
		{
			$this->setContentsTitle('パスワードお問い合わせ', '');
		}

		//なんか色々
		$this->_data['strFormParam'] = $formParam;
		$this->_data['strCHeyaCD'] = $heyaCd;
		$this->_data['strSrhKbnStock'] = $searchKbnStock;
		$this->_data['eID'] = $id;
		// 共通

		$this->addMetaJs('/app/js/jquery.validation.js');

		$this->setMainClass('mypagePassForm');
		$this->_breadcrumb->reset();
		$this->_breadcrumb->add(Apm_Config_Search::BREADCRUMB_TOP, $this->_baseurl);
		$this->_breadcrumb->add('マイページ', $this->_baseurl . 'mypage/menu');
		$this->_breadcrumb->add('パスワードお問い合わせ', $this->_sslurl . 'mypage/password');
		$this->setBreadCrumb($this->_breadcrumb->generateBreadcrumb());
		$this->addMetaCss('/css/inquiry/hp/form.css');
	}

	/**
	 * メールを送信する
	 *
	 * @param string $email メールアドレス
	 * @param string $password ユーザパスワード
	 * @param string $nickName ニックネーム
	 */
	private function sendMail($email, $password, $nickName)
	{
		$fromAddress = Apm_Config_Mypage::MAIL_FROM;
		$toAddress = $email;

		$subject = '【アパマンショップマイページ】パスワードのご連絡';
		$body = '';

		$isMobile = Apm_Otheritems::CheckMobileAddress($toAddress);

		if ($isMobile)
		{
			$body .= $nickName . "様\r\n";
			$body .= "\r\n";
			$body .= "お問い合わせいただきましたﾏｲﾍﾟｰｼﾞのﾊﾟｽﾜｰﾄﾞをご連絡いたします。\r\n";
			$body .= "\r\n";
			$body .= "ﾊﾟｽﾜｰﾄﾞ ： " . $password . "\r\n";
			$body .= "\r\n";
			$body .= Apm_Config_Mypage::MAIL_MYPAGE_FOOT_MB;
		}
		else
		{
			$body .= "━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━\r\n";
			$body .= "　　　【アパマンショップマイページ】パスワードのお知らせ\r\r\n";
			$body .= "━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━\r\n";
			$body .= "※このメールは「アパマンショップマイページ」に登録をされた方にお送りしております。\r\n";
			$body .= "お心当たりのない方は、お手数ですがこのメールにその旨ご記入の上ご返信下さい。\r\n";
			$body .= "\r\n";
			$body .= "マイページよりお問い合わせいただきましたパスワードをご連絡いたします。\r\n";
			$body .= "*------------------------------------------------------------*\r\n";
			$body .= "パスワード ： " . $password . "\r\n";
			$body .= "*------------------------------------------------------------\r\n";
			$body .= "\r\n";
			$body .= Apm_Config_Mypage::MAIL_MYPAGE_FOOT;
		}

		$success = Apm_Otheritems::SendMail($toAddress, $fromAddress, $subject, $body);

		if ($success == false)
		{
			//TODO:エラー処理
		}
	}
}
?>
